package com.psychologyCommunity.Community.util;

import com.alibaba.fastjson.JSONObject;
import com.mysql.cj.util.StringUtils;
import org.springframework.util.DigestUtils;

import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

public class CommunityUtil {
    //在开发时  经常需要 生成 随机字符串 ，所以我们把它封装起来
    public static String generateUUID() {
        return UUID.randomUUID().toString().replaceAll("-", "");//把-去掉：替换成空
    }
        //MD5算法加密 --这个只能加密 不能解密
        // 比如：HELLO--》abcd12345DEF456  可能黑客也能通过这个算法加密得到abcd12345DEF456
        //HELLO+随机字符串hkdhua--》abcd12345DEF456sadasassa 此时HELLO+随机字符串hkdhua就没有规律了 黑客就不能通过这个MD5来解析
        public static String md5(String key){
            if(StringUtils.isNullOrEmpty(key)) {//判断这个密码是不是空的 是空的就返回null
                return  null;
            }
            //它将你传入的结果 加密成一个16进制的字符串返回
            return DigestUtils.md5DigestAsHex(key.getBytes());
        }
        //利用 Fastjson-- api开发几个工具方法
        //服务器给浏览器返回一个编码，或者返回一个提示信息或者一些业务数据
      public static String getJSONString(int code, String msg, Map<String,Object> map){
          JSONObject json=new JSONObject();//JSONObject 类型的对象封装了形参传给我的这些数据
          json.put("code",code);
          json.put("msg",msg);
          //map中的键值对 要一对一对的打散放进去
          if(map !=null){
              for (String key: map.keySet()){
                  json.put(key,map.get(key));
              }
          }
          return json.toJSONString();//最终转成json格式的字符串 返回
      }
      //对上面的方法重载一下，方便调用
      public static String getJSONString(int code, String msg){
        return getJSONString(code,msg,null);
      }

    public static String getJSONString(int code){
        return getJSONString(code,null,null);
    }
    public static void main(String[] args){
        Map<String,Object> map=new HashMap<>();
        map.put("name","loco");
        map.put("age",25);
        System.out.println(getJSONString(1,"xt",map));
    }
}
